#include <bits/stdc++.h>
// 2025/01/22
// tag: 
// Author: Zhang Muen
using namespace std;

int l, n, k, road[100001];

bool check(int x){
    int cnt = 0, last = 0;
    for (int i = 1; i < n; i++){
        if (road[i] - last > x){
            cnt++, last += x, i--;
        }else{
            last = road[i];
        }
        if (cnt > k)
            return false;
    }
    return cnt <= k;
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> l >> n >> k;
    for (int i = 0; i < n; i++)
        cin >> road[i];
    int left = 0, right = l, ans;
    while (left <= right){
        int mid = (left + right) / 2;
        if (check(mid))
            ans = mid, right = mid - 1;
        else
            left = mid + 1;
    }
    cout << ans;
    return 0;
}